/**
 * ajax封装get
 * @param {string} url 请求地址
 * @param {object} params 请求参数
 * @param {function} callback 回调函数
 * @param {string|undefined} type 数据类型
 * @param {object} headers 自定义请求头
 */
function get(url, params, callback, type, headers = {}) {
    // 1.创建ajax对象
    const xhr = new XMLHttpRequest
    // 2.监听状态
    xhr.onreadystatechange = () => {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                let res = xhr.responseText
                if (type === "json") res = JSON.parse(res)
                callback(res)
            } else {
                console.log("出错了", xhr.status)
            }
        }
    }
    // 遍历参数params
    let temp = []
    for (let key in params) {
        temp.push(`${key}=${params[key]}`)
    }
    // 3.请求方式、请求地址
    xhr.open("get", `${url}?${temp.join("&")}`)
    //  设置自定义请求头
    for (let key in headers) {
        xhr.setRequestHeader(key, headers[key])
    }
    // 4.发送
    xhr.send(null)
}



/**
 * ajax封装post
 * @param {string} url 请求地址
 * @param {object} params 请求参数
 * @param {function} callback 回调函数
 * @param {string|undefined} type 数据类型
 * @param {object} headers 自定义请求头
 */
function post(url, params, callback, type, headers = {}) {
    //  1.创建ajax对象
    const xhr = new XMLHttpRequest
    //   2.监听状态
    xhr.onreadystatechange = () => {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                let res = xhr.responseText
                if (type === "json") res = JSON.parse(res)
                callback(res)
            } else {
                console.log("出错了", xhr.status)
            }
        }
    }
    //  3.请求方式、请求地址
    xhr.open("post", url)
    //  设置默认请求头
    xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded")
    //  设置自定义请求头
    for (let key in headers) {
        xhr.setRequestHeader(key, headers[key])
    }
    //  遍历参数params
    let temp = []
    for (let key in params) {
        temp.push(`${key}=${params[key]}`)
    }
    //  4.发送
    xhr.send(temp.join("&"))
}